Skip to content

[pull] main from microsoft:main#1120

Merged
pull[bot] merged 3917 commits intocode:mainfrom
microsoft:main
Apr 7, 2026
Merged

[pull] main from microsoft:main#1120
pull[bot] merged 3917 commits intocode:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 7, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

lszomoru and others added 30 commits March 30, 2026 13:58
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.12 to 1.1.13.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.12...v1.1.13)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Allow invoking simulationMain with alternative action input

* Address review comments: rename CLI opts, extract pipeline, fix correctness issues

- Rename CLI options with --train- prefix (--train-input, --train-strategy,
  --train-out, --train-row-offset, --train-worker) and document all options
- Extract runInputPipeline/runInputPipelineParallel to test/pipeline/trainPipeline.ts
- Preserve original row index through parse/replay/prompt pipeline to fix
  sample numbering drift when rows are filtered out
- Fix parseSuggestedEdit: use JSON.parse for escaped text, handle missing delimiter
- Fix line number regex to accept optional space after | (WithoutSpace format)
- Clamp concurrency to >= 1, type samples as ISample[], wrap dispose in try/finally
- Gate verbose logging in loadAndParseInput behind verbose flag
- Use splitLines from existing utility instead of local duplicate

* move nes-datagen to a subcommand

* more code reuse around setting promptStrategy and model config

* Address review: use ResponseFormat, Limiter, assertNever, and raw messages

* minor refactor runPipeline

* finalize

* use POT instead of custom code

* move files from script/ to test/pipeline/

---------

Co-authored-by: ulugbekna <ulugbekna@gmail.com>
* add additional header

* Update comment to reflect both legacy and new standardized headers

Agent-Logs-Url: https://github.com/microsoft/vscode-copilot-chat/sessions/e0dd0087-6284-4ddf-93b9-bb0411f8801d

Co-authored-by: jul-stevenson <13982307+jul-stevenson@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jul-stevenson <13982307+jul-stevenson@users.noreply.github.com>
The copilot submodule uses Git LFS for .sqlite cache files. On macOS
CI agents, the LFS smudge filter is not configured globally (unlike
Windows where Git for Windows bundles it), so git submodule update
leaves LFS pointer files (133 bytes) instead of the actual content
(~21MB). This causes cache misses in the test's SQLiteCache, which
then tries to fetch model metadata with a token that isn't available
in the Electron extension host, failing the tests.

Fix by explicitly running git lfs pull in the copilot submodule
directory before running tests. Also removes the temporary diagnostics
step that was used to investigate this issue.
When setting the session type to "Cloud", VS Code correctly lists models available for Copilot coding agent.

However, the selected model is not honored because it is sent in the `model_name` parameter instead of the expected `model` parameter.

This switches to using the expected `model` parameter, as expected by the `RemoteAgentJobPayload` type and the underlying API.
git lfs pull alone prints 'Skipping object checkout, Git LFS is not
installed for this repository' because the submodule checkout doesn't
inherit LFS filter config. Run git lfs install --local first to
configure the smudge/clean filters for the submodule repo.
Bumps the all group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node), [actions/cache](https://github.com/actions/cache) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

Updates `actions/setup-node` from 4 to 6
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v6)

Updates `actions/cache` from 4 to 5
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v5)

Updates `actions/upload-artifact` from 5 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The version in source is now always 1.0.0. The actual VS Code
version is stamped during the CI build pipeline before packaging.
- Set extensions/copilot package.json version to 1.0.0 (source default)
- Add pipeline step to product-copilot.yml and product-copilot-release.yml
  that sets version and engines.vscode to match the VS Code version
  before packaging the VSIX
…4806)

* Clean up conversation store entries when chat sessions are disposed

Listen to onDidDisposeChatSession and schedule a 10-minute cleanup
timer for each disposed session. Accessing conversations via
getConversation, lastConversation, or addConversation resets the timer.
After the timeout fires, all entries for that session are removed from
the LRU cache.

* tweak

Co-authored-by: Copilot <copilot@github.com>

* tweak

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
Set the version right after submodule init, before setup/build steps,
so the build processes the correct version from the start.
* WIP Controller Dropdowns

* WIP

* wip

* Updates

* misc

* Updates to package.json

* Fix tests
* add prompting for HiddenFamilyH

* Update src/platform/endpoint/common/chatModelCapabilities.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ositoryManager (#4831)

* Clear workspace changes before retrieving modified files in FolderRepositoryManager

* Fix tests
* Initial plan

* Add chat.claudeAgent.includeCoAuthoredBy setting to control Claude co-attribution

Agent-Logs-Url: https://github.com/microsoft/vscode-copilot-chat/sessions/1249d941-2976-42db-8fd6-db5b00625865

Co-authored-by: pierceboggan <1091304+pierceboggan@users.noreply.github.com>

* Fix NLS description formatting for includeCoAuthoredBy setting

Agent-Logs-Url: https://github.com/microsoft/vscode-copilot-chat/sessions/1249d941-2976-42db-8fd6-db5b00625865

Co-authored-by: pierceboggan <1091304+pierceboggan@users.noreply.github.com>

* Hardcode includeCoAuthoredBy: false instead of adding a user setting

Agent-Logs-Url: https://github.com/microsoft/vscode-copilot-chat/sessions/b52d23f0-a148-444e-82e9-0e9e736ab8e5

Co-authored-by: pierceboggan <1091304+pierceboggan@users.noreply.github.com>

* Use attribution API instead of deprecated includeCoAuthoredBy

Agent-Logs-Url: https://github.com/microsoft/vscode-copilot-chat/sessions/07ad67f8-4840-4f73-b94b-636c09541fea

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: pierceboggan <1091304+pierceboggan@users.noreply.github.com>
Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>
Co-authored-by: Pierce Boggan <pierceboggan14@gmail.com>
* max session logs to retain

* feedback update
When a CacheBreakpoint had no preceding content block to attach
cache_control to, rawContentToAnthropicContent created a placeholder
{ type: 'text', text: ' ' } block. The Anthropic API rejects
whitespace-only text blocks with 'text content block must contain
non-whitespace text'.

This happens in long conversations after prompt-tsx prunes content to
fit the token budget, leaving a CacheBreakpoint with no real content
before it.

Fix: defer the cache_control to the next cacheable content block. If
no subsequent block exists, silently drop it (nothing to cache anyway).

Fixes #305956
…l events and GH telemetry (#4844)

* feat: define workspace metadata OTel attributes and resolver

Add CopilotChatAttr constants for repo.head_branch_name,
repo.head_commit_hash, repo.remote_url, and file.relative_path.

Create WorkspaceOTelMetadata interface and resolveWorkspaceOTelMetadata()
helper that synchronously resolves git metadata from activeRepository.

Refs: #306397, microsoft/vscode-internalbacklog#7297

* feat: extend OTel edit events with optional workspace metadata

Add optional WorkspaceOTelMetadata param to emitEditFeedbackEvent,
emitEditHunkActionEvent, emitInlineDoneEvent, emitEditSurvivalEvent.

Existing callers compile unchanged since the new param is optional.

Refs: #306397

* feat: add workspace metadata to invoke_agent OTel span

Inject IGitService into ToolCallingLoop and spread resolved workspace
metadata (branch, commit, remote) onto the invoke_agent span attributes.

Refs: #306397

* feat: extend EditSurvivalResult with workspace metadata

Add workspace field to EditSurvivalResult interface and populate it
in EditSurvivalReporter._report() using resolveWorkspaceOTelMetadata().

The reporter already injects IGitService and has the document URI,
so no new DI is needed.

Refs: #306397

* feat: inject IGitService into UserActions and pass workspace metadata

Add workspace metadata to emitEditFeedbackEvent, emitEditHunkActionEvent,
and emitInlineDoneEvent calls in UserFeedbackService using the file URI
from each event action.

Refs: #306397

* feat: pass workspace metadata to OTel survival events

Forward res.workspace from EditSurvivalResult to emitEditSurvivalEvent
at all 4 call sites: inline_chat, code_mapper, apply_patch, replace_string.

Refs: #306397

* feat: add workspace metadata to GH telemetry edit events

Add headBranchName, headCommitHash, remoteUrl, fileRelativePath to
sendGHTelemetryEvent/sendEnhancedGHTelemetryEvent calls for:
- inline.trackEditSurvival
- fastApply/trackEditSurvival
- applyPatch/trackEditSurvival
- replaceString/trackEditSurvival
- fastApply/editOutcome

Refs: microsoft/vscode-internalbacklog#7297

* test: add unit tests for workspace metadata resolver and events

Test resolveWorkspaceOTelMetadata (branch, commit, URL, relative path,
edge cases) and workspaceMetadataToOTelAttributes (OTel key mapping).

Add tests for emitEditFeedbackEvent and emitEditSurvivalEvent verifying
workspace metadata is included/omitted correctly.

Refs: #306397

* fix: propagate IGitService to ToolCallingLoop subclasses

Pass the new IGitService constructor parameter through to super() in
all 5 ToolCallingLoop subclasses: McpToolCallingLoop,
CodebaseToolCallingLoop, DefaultToolCallingLoop,
ExecutionSubagentToolCallingLoop, SearchSubagentToolCallingLoop.

Refs: #306397

* fix: address review - URI-safe path, brace style, trim tests

- Fix path prefix false-positive by using isEqualOrParent/relativePath
  instead of string startsWith (e.g. /repo matching /repo2/file.ts)
- Expand one-line if blocks to multi-line per repo coding standards
- Remove as-any mutation in test, remove trivial conversion tests,
  add test for path prefix false-positive edge case
…4834)

When TST (Tool Search Tool) is enabled, most tools are sent with
defer_loading: true and don't count against the context window until the
model loads them via tool_search. However, the toolTokens calculation in
agentIntent counted ALL available tools, over-estimating by ~25-30K
tokens and causing premature compaction.

Fix: filter availableTools to only non-deferred tools (via
IToolDeferralService) before calling countToolTokens() when TST is
enabled. This gives an accurate budget that reflects what the API
actually charges against the context window.
* Copilot CLI: Fix nested sub agent calls

* Fixes
joaomoreno and others added 27 commits April 7, 2026 11:35
…nning toolbar actions

When the inline chat overlay widget shows follow-up actions (Rephrase, Ask in Chat, etc.),
clicking them after focusing into another editor resulted in no action because EditorAction2
resolves the target editor via the focused/active code editor service. Add a custom ActionRunner
that focuses the owning editor before running any toolbar action.

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/47203e8e-c359-4980-891c-3dee04e83d2f

Co-authored-by: jrieken <1794099+jrieken@users.noreply.github.com>
…idget.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…us-action

Fix inline chat follow-up actions being non-functional when editor loses focus
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…emetry

actions: add WorkbenchActionBar with telemetry support
…ssions (#308224)

* WIP - Initial implementation

* Refactor things

* More refactoring

* Fix compilation errors
…inline

fix: strip ANSI escape codes from inline test output messages
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
* fix checking active session provider

* Update src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessionsActions.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Apr 7, 2026
@pull pull Bot added the ⤵️ pull label Apr 7, 2026
@pull pull Bot merged commit c4a91a1 into code:main Apr 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.